﻿using System;
using System.CodeDom.Compiler;
using System.Diagnostics;
using Google.Protobuf;
using Google.Protobuf.Collections;
using Google.Protobuf.Reflection;

namespace EggLink.DanhengServer.Proto
{
	// Token: 0x020010D9 RID: 4313
	[DebuggerDisplay("{ToString(),nq}")]
	public sealed class SceneMonsterWave : IMessage<SceneMonsterWave>, IMessage, IEquatable<SceneMonsterWave>, IDeepCloneable<SceneMonsterWave>, IBufferMessage
	{
		// Token: 0x170036A1 RID: 13985
		// (get) Token: 0x0600C0F2 RID: 49394 RVA: 0x0020A2B3 File Offset: 0x002084B3
		[DebuggerNonUserCode]
		[GeneratedCode("protoc", null)]
		public static MessageParser<SceneMonsterWave> Parser
		{
			get
			{
				return SceneMonsterWave._parser;
			}
		}

		// Token: 0x170036A2 RID: 13986
		// (get) Token: 0x0600C0F3 RID: 49395 RVA: 0x0020A2BA File Offset: 0x002084BA
		[DebuggerNonUserCode]
		[GeneratedCode("protoc", null)]
		public static MessageDescriptor Descriptor
		{
			get
			{
				return SceneMonsterWaveReflection.Descriptor.MessageTypes[0];
			}
		}

		// Token: 0x170036A3 RID: 13987
		// (get) Token: 0x0600C0F4 RID: 49396 RVA: 0x0020A2CC File Offset: 0x002084CC
		[DebuggerNonUserCode]
		[GeneratedCode("protoc", null)]
		MessageDescriptor IMessage.Descriptor
		{
			get
			{
				return SceneMonsterWave.Descriptor;
			}
		}

		// Token: 0x0600C0F5 RID: 49397 RVA: 0x0020A2D3 File Offset: 0x002084D3
		[DebuggerNonUserCode]
		[GeneratedCode("protoc", null)]
		public SceneMonsterWave()
		{
		}

		// Token: 0x0600C0F6 RID: 49398 RVA: 0x0020A2F4 File Offset: 0x002084F4
		[DebuggerNonUserCode]
		[GeneratedCode("protoc", null)]
		public SceneMonsterWave(SceneMonsterWave other) : this()
		{
			this.monsterList_ = other.monsterList_.Clone();
			this.dropList_ = other.dropList_.Clone();
			this.battleWaveId_ = other.battleWaveId_;
			this.monsterParam_ = ((other.monsterParam_ != null) ? other.monsterParam_.Clone() : null);
			this.battleStageId_ = other.battleStageId_;
			this._unknownFields = UnknownFieldSet.Clone(other._unknownFields);
		}

		// Token: 0x0600C0F7 RID: 49399 RVA: 0x0020A36E File Offset: 0x0020856E
		[DebuggerNonUserCode]
		[GeneratedCode("protoc", null)]
		public SceneMonsterWave Clone()
		{
			return new SceneMonsterWave(this);
		}

		// Token: 0x170036A4 RID: 13988
		// (get) Token: 0x0600C0F8 RID: 49400 RVA: 0x0020A376 File Offset: 0x00208576
		[DebuggerNonUserCode]
		[GeneratedCode("protoc", null)]
		public RepeatedField<SceneMonster> MonsterList
		{
			get
			{
				return this.monsterList_;
			}
		}

		// Token: 0x170036A5 RID: 13989
		// (get) Token: 0x0600C0F9 RID: 49401 RVA: 0x0020A37E File Offset: 0x0020857E
		[DebuggerNonUserCode]
		[GeneratedCode("protoc", null)]
		public RepeatedField<ItemList> DropList
		{
			get
			{
				return this.dropList_;
			}
		}

		// Token: 0x170036A6 RID: 13990
		// (get) Token: 0x0600C0FA RID: 49402 RVA: 0x0020A386 File Offset: 0x00208586
		// (set) Token: 0x0600C0FB RID: 49403 RVA: 0x0020A38E File Offset: 0x0020858E
		[DebuggerNonUserCode]
		[GeneratedCode("protoc", null)]
		public uint BattleWaveId
		{
			get
			{
				return this.battleWaveId_;
			}
			set
			{
				this.battleWaveId_ = value;
			}
		}

		// Token: 0x170036A7 RID: 13991
		// (get) Token: 0x0600C0FC RID: 49404 RVA: 0x0020A397 File Offset: 0x00208597
		// (set) Token: 0x0600C0FD RID: 49405 RVA: 0x0020A39F File Offset: 0x0020859F
		[DebuggerNonUserCode]
		[GeneratedCode("protoc", null)]
		public SceneMonsterWaveParam MonsterParam
		{
			get
			{
				return this.monsterParam_;
			}
			set
			{
				this.monsterParam_ = value;
			}
		}

		// Token: 0x170036A8 RID: 13992
		// (get) Token: 0x0600C0FE RID: 49406 RVA: 0x0020A3A8 File Offset: 0x002085A8
		// (set) Token: 0x0600C0FF RID: 49407 RVA: 0x0020A3B0 File Offset: 0x002085B0
		[DebuggerNonUserCode]
		[GeneratedCode("protoc", null)]
		public uint BattleStageId
		{
			get
			{
				return this.battleStageId_;
			}
			set
			{
				this.battleStageId_ = value;
			}
		}

		// Token: 0x0600C100 RID: 49408 RVA: 0x0020A3B9 File Offset: 0x002085B9
		[DebuggerNonUserCode]
		[GeneratedCode("protoc", null)]
		public override bool Equals(object other)
		{
			return this.Equals(other as SceneMonsterWave);
		}

		// Token: 0x0600C101 RID: 49409 RVA: 0x0020A3C8 File Offset: 0x002085C8
		[DebuggerNonUserCode]
		[GeneratedCode("protoc", null)]
		public bool Equals(SceneMonsterWave other)
		{
			return other != null && (other == this || (this.monsterList_.Equals(other.monsterList_) && this.dropList_.Equals(other.dropList_) && this.BattleWaveId == other.BattleWaveId && object.Equals(this.MonsterParam, other.MonsterParam) && this.BattleStageId == other.BattleStageId && object.Equals(this._unknownFields, other._unknownFields)));
		}

		// Token: 0x0600C102 RID: 49410 RVA: 0x0020A450 File Offset: 0x00208650
		[DebuggerNonUserCode]
		[GeneratedCode("protoc", null)]
		public override int GetHashCode()
		{
			int num = 1;
			num ^= this.monsterList_.GetHashCode();
			num ^= this.dropList_.GetHashCode();
			if (this.BattleWaveId != 0U)
			{
				num ^= this.BattleWaveId.GetHashCode();
			}
			if (this.monsterParam_ != null)
			{
				num ^= this.MonsterParam.GetHashCode();
			}
			if (this.BattleStageId != 0U)
			{
				num ^= this.BattleStageId.GetHashCode();
			}
			if (this._unknownFields != null)
			{
				num ^= this._unknownFields.GetHashCode();
			}
			return num;
		}

		// Token: 0x0600C103 RID: 49411 RVA: 0x0020A4DA File Offset: 0x002086DA
		[DebuggerNonUserCode]
		[GeneratedCode("protoc", null)]
		public override string ToString()
		{
			return JsonFormatter.ToDiagnosticString(this);
		}

		// Token: 0x0600C104 RID: 49412 RVA: 0x0020A4E2 File Offset: 0x002086E2
		[DebuggerNonUserCode]
		[GeneratedCode("protoc", null)]
		public void WriteTo(CodedOutputStream output)
		{
			output.WriteRawMessage(this);
		}

		// Token: 0x0600C105 RID: 49413 RVA: 0x0020A4EC File Offset: 0x002086EC
		[DebuggerNonUserCode]
		[GeneratedCode("protoc", null)]
		void IBufferMessage.InternalWriteTo(ref WriteContext output)
		{
			if (this.monsterParam_ != null)
			{
				output.WriteRawTag(10);
				output.WriteMessage(this.MonsterParam);
			}
			this.dropList_.WriteTo(ref output, SceneMonsterWave._repeated_dropList_codec);
			this.monsterList_.WriteTo(ref output, SceneMonsterWave._repeated_monsterList_codec);
			if (this.BattleWaveId != 0U)
			{
				output.WriteRawTag(96);
				output.WriteUInt32(this.BattleWaveId);
			}
			if (this.BattleStageId != 0U)
			{
				output.WriteRawTag(112);
				output.WriteUInt32(this.BattleStageId);
			}
			if (this._unknownFields != null)
			{
				this._unknownFields.WriteTo(ref output);
			}
		}

		// Token: 0x0600C106 RID: 49414 RVA: 0x0020A584 File Offset: 0x00208784
		[DebuggerNonUserCode]
		[GeneratedCode("protoc", null)]
		public int CalculateSize()
		{
			int num = 0;
			num += this.monsterList_.CalculateSize(SceneMonsterWave._repeated_monsterList_codec);
			num += this.dropList_.CalculateSize(SceneMonsterWave._repeated_dropList_codec);
			if (this.BattleWaveId != 0U)
			{
				num += 1 + CodedOutputStream.ComputeUInt32Size(this.BattleWaveId);
			}
			if (this.monsterParam_ != null)
			{
				num += 1 + CodedOutputStream.ComputeMessageSize(this.MonsterParam);
			}
			if (this.BattleStageId != 0U)
			{
				num += 1 + CodedOutputStream.ComputeUInt32Size(this.BattleStageId);
			}
			if (this._unknownFields != null)
			{
				num += this._unknownFields.CalculateSize();
			}
			return num;
		}

		// Token: 0x0600C107 RID: 49415 RVA: 0x0020A618 File Offset: 0x00208818
		[DebuggerNonUserCode]
		[GeneratedCode("protoc", null)]
		public void MergeFrom(SceneMonsterWave other)
		{
			if (other == null)
			{
				return;
			}
			this.monsterList_.Add(other.monsterList_);
			this.dropList_.Add(other.dropList_);
			if (other.BattleWaveId != 0U)
			{
				this.BattleWaveId = other.BattleWaveId;
			}
			if (other.monsterParam_ != null)
			{
				if (this.monsterParam_ == null)
				{
					this.MonsterParam = new SceneMonsterWaveParam();
				}
				this.MonsterParam.MergeFrom(other.MonsterParam);
			}
			if (other.BattleStageId != 0U)
			{
				this.BattleStageId = other.BattleStageId;
			}
			this._unknownFields = UnknownFieldSet.MergeFrom(this._unknownFields, other._unknownFields);
		}

		// Token: 0x0600C108 RID: 49416 RVA: 0x0020A6B6 File Offset: 0x002088B6
		[DebuggerNonUserCode]
		[GeneratedCode("protoc", null)]
		public void MergeFrom(CodedInputStream input)
		{
			input.ReadRawMessage(this);
		}

		// Token: 0x0600C109 RID: 49417 RVA: 0x0020A6C0 File Offset: 0x002088C0
		[DebuggerNonUserCode]
		[GeneratedCode("protoc", null)]
		void IBufferMessage.InternalMergeFrom(ref ParseContext input)
		{
			uint num;
			while ((num = input.ReadTag()) != 0U)
			{
				if (num <= 18U)
				{
					if (num == 10U)
					{
						if (this.monsterParam_ == null)
						{
							this.MonsterParam = new SceneMonsterWaveParam();
						}
						input.ReadMessage(this.MonsterParam);
						continue;
					}
					if (num == 18U)
					{
						this.dropList_.AddEntriesFrom(ref input, SceneMonsterWave._repeated_dropList_codec);
						continue;
					}
				}
				else
				{
					if (num == 50U)
					{
						this.monsterList_.AddEntriesFrom(ref input, SceneMonsterWave._repeated_monsterList_codec);
						continue;
					}
					if (num == 96U)
					{
						this.BattleWaveId = input.ReadUInt32();
						continue;
					}
					if (num == 112U)
					{
						this.BattleStageId = input.ReadUInt32();
						continue;
					}
				}
				this._unknownFields = UnknownFieldSet.MergeFieldFrom(this._unknownFields, ref input);
			}
		}

		// Token: 0x04004DF1 RID: 19953
		private static readonly MessageParser<SceneMonsterWave> _parser = new MessageParser<SceneMonsterWave>(() => new SceneMonsterWave());

		// Token: 0x04004DF2 RID: 19954
		private UnknownFieldSet _unknownFields;

		// Token: 0x04004DF3 RID: 19955
		public const int MonsterListFieldNumber = 6;

		// Token: 0x04004DF4 RID: 19956
		private static readonly FieldCodec<SceneMonster> _repeated_monsterList_codec = FieldCodec.ForMessage<SceneMonster>(50U, SceneMonster.Parser);

		// Token: 0x04004DF5 RID: 19957
		private readonly RepeatedField<SceneMonster> monsterList_ = new RepeatedField<SceneMonster>();

		// Token: 0x04004DF6 RID: 19958
		public const int DropListFieldNumber = 2;

		// Token: 0x04004DF7 RID: 19959
		private static readonly FieldCodec<ItemList> _repeated_dropList_codec = FieldCodec.ForMessage<ItemList>(18U, ItemList.Parser);

		// Token: 0x04004DF8 RID: 19960
		private readonly RepeatedField<ItemList> dropList_ = new RepeatedField<ItemList>();

		// Token: 0x04004DF9 RID: 19961
		public const int BattleWaveIdFieldNumber = 12;

		// Token: 0x04004DFA RID: 19962
		private uint battleWaveId_;

		// Token: 0x04004DFB RID: 19963
		public const int MonsterParamFieldNumber = 1;

		// Token: 0x04004DFC RID: 19964
		private SceneMonsterWaveParam monsterParam_;

		// Token: 0x04004DFD RID: 19965
		public const int BattleStageIdFieldNumber = 14;

		// Token: 0x04004DFE RID: 19966
		private uint battleStageId_;
	}
}
